package com.erp.auto.service;


import com.erp.auto.domain.ErpAutoPulishProductProject;
import com.erp.auto.domain.bo.ErpAutoPublishProductProjectBo;
import com.ruoyi.auto.api.domain.ErpAutoPulishProductProjectTask;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.gather.api.domain.dto.AutoQueryInfoDto;

import java.util.List;

/**
 * 自动化发布Service接口
 *
 * @author erp
 * @date 2024-02-21
 */
public interface IErpAutoPublishProductProjectService {

    R<Object> publishSellerStoreProduct(ErpAutoPulishProductProject project);

//    R<Object> publishSellerProduct(ErpAutoPulishProductProject project);

    R<Object> publishAeProduct(ErpAutoPulishProductProject project);

    R<Object> processAeProduct(Long sellerStoreProductId, ErpAutoPulishProductProject project);

    R<Object> queryProjectById(String projectId);

    R<Object> editPulishProject(ErpAutoPulishProductProject project);

    R<Object> addPulishProductProject(ErpAutoPublishProductProjectBo projectBo);

    R<Object> editPulishProjectStatus(String projectId, Integer status);

    List<ErpAutoPulishProductProjectTask> getPulishProductProjectTaskList(Long aeProductId, String projectId, String status, String startTime, String endTime);

    R<Object> runPulishProductProjectJob();

    R<Object> synchronizationToken(String storeUserName);

    R<Object> runPulishProductProjectJobById(String id);

    R<Object> restartPulishProductProjectJob(ErpAutoPulishProductProject project, Integer count, Integer type);

    R<Object> processingProjectGroupAndDiscount();

    String queryStoreProductNumberByInfo(AutoQueryInfoDto dto);

    R<Object> runNotCreatePulishProductProjectJob();

    R<Object> unshelfErrorAndCreateTask();


    R<Object> createNewProjectActivityByStoreId(Long storeId);

    R<Object> unshelfErrorAndCreateTaskNew();

    R<Object> unshelfErrorAndCreateTaskAgain();

    R<Object> runlishProductProjectJobByUnshelf(Long projectId, Integer count, Integer type);

    R<Object> runProjectByStoreUserName(String storeUserName);

    R<Object> changeBindingProdjectPriceTemplate(Long projectId);
}
